#pragma once
#include "PBBimTools\IToolProperty.h" 
#include "ArchiElementProperty.h"

enum %Class%PropName
{
	// %VARS_START% -------------------------------
	%Type_all_Start%//////////////
	%Class%%VarName%,
	%Type_all_End%//////////////
    // %VARS_END% -------------------------------

	%Class%PropCount,
};

/*---------------------------------------------------------------------------------**//**
* @bsimclass                                    Y.Dong                     %CreateTime%
+---------------+---------------+---------------+---------------+---------------+------*/
class Archi%Class%Property :public IToolProperty, public BuildingElementProperty
{
    DEFINE_T_SUPER(BuildingElementProperty)
private:
	DgnProjectP m_project;
    size_t m_startIdx;
    size_t m_endIdx;

public:
	Archi%Class%Property(){ m_startIdx = 0; m_endIdx = 0; };
	~Archi%Class%Property(){};
    virtual void OnPropertyGet(std::vector<ElementRefP> const & refps, PBBimUIProperyList& lst)  override;
    virtual TIErrorStatus OnPropertySet(std::vector<ElementRefP> const & refps, int index, PBBimUIPropertyItem const & item) override;
protected:
	TIErrorStatus Set%Class%Property(std::vector<IPBObjectPtr>& pbObjs, std::vector<PBModelInfo> &modelInfos, DgnProjectCP project, int index, PBBimUIPropertyItem const & item);
};
